package com.lcj.mps.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * 司机定位Service
 */
public interface DriverLocationService {

    /**
     * 更新司机定位
     * @param param
     */
    public void updateLocationCache(Map param);

    /**
     * 移除司机定位
     * @param driverId 司机ID
     */
    public void removeLocationCache(long driverId);

    /**
     * 搜索符合条件的司机
     * @param startPlaceLatitude 起点纬度
     * @param startPlaceLongitude 起点经度
     * @param endPlaceLatitude 终点纬度
     * @param endPlaceLongitude 终点经度
     * @param mileage 预估里程
     * @return ArrayList - 司机列表
     */
    public ArrayList searchSuitableDriverAboutOrder(double startPlaceLatitude, double startPlaceLongitude,
                                                     double endPlaceLatitude, double endPlaceLongitude,
                                                     double mileage);

    /**
     * 更新订单中的司机定位缓存
     * @param param
     */
    void updateOrderLocationCache(Map param);

    /**
     * 查询司机定位缓存
     * @param orderId
     * @return
     */
    HashMap searchOrderLocationCache(long orderId);
}